# 导入必要的库
from llama_index.core import VectorStoreIndex, Document
from llama_index.core.node_parser import SentenceSplitter

# 创建示例文档
sample_texts = [
    "LlamaIndex支持多种索引类型，包括向量索引和摘要索引。",
    "向量索引适合语义搜索，摘要索引适合文档摘要。",
]

# 将文本转换为Document对象
documents = [Document(text=text) for text in sample_texts]

# 创建节点解析器
# SentenceSplitter会将文档分割成句子级别的节点
node_parser = SentenceSplitter(chunk_size=1024, chunk_overlap=20)

# 将文档分割成节点
# 节点是索引的基本构建块，每个节点包含一段文本内容
nodes = node_parser.get_nodes_from_documents(documents)

# 直接从节点创建向量索引
# 这种方式允许您对节点分割过程进行更精细的控制
index = VectorStoreIndex(nodes)

# 创建查询引擎并执行查询
query_engine = index.as_query_engine()
response = query_engine.query("LlamaIndex有哪些索引类型？")
print(response)
